Often, users have difficulty in knowing what terms to enter into a search query to retrieve the desired results. Even users who know what they want have a difficult time effectively searching. In both cases the user has an idea of what to search for but does not have the knowledge or ability to create a comprehensive vocabulary for a search. This causes the user to lose out on information and leads to poor search results. While common search engines provide autocompletion based on frequent searches and previous search history to assist the user, such feature can be limiting because it only returns the exact search or partial search of the user input.